The software which Oracle Corporation markets as Oracle Data Guard forms an extension to the Oracle RDBMS. It aids in establishing and maintaining secondary "standby databases" as alternative/supplementary repositories to production "primary databases".
Oracle Corporation provides both GUI and command-line tools for managing Data Guard configurations.
Data Guard supports both physical standby and logical standby sites. Oracle Corporation makes Data Guard available only as a bundled feature included within its "Enterprise Edition" of the Oracle RDBMS.[1]
With appropriately set-up Data Guard operations, DBAs can facilitate failovers or switchovers to alternative hosts in the same or alternative locations.
Contents |
A Physical standby database replicates the exact contents of its primary database across the Oracle Net network layer. While the physical storage locations can be different, the data in the database will be exactly the same as the primary database. It can function either in managed Recovery mode or in read-only mode, but not in both modes at the same time unless the databases are at Oracle Database 11.1 or higher and the Active Data Guard option is licensed (See below).
Logical standby databases convert the redo generated at the Primary database into data and SQL and then re-apply those SQL transactions on the Logical standby, thus physical structures and organization will be different from the Primary database. Users can read from logical standby databases while the changes are being applied and, if the GUARD is set to STANDBY (ALTER DATABASE GUARD STANDBY;), write to tables in the Logical standby database that are not being maintained by SQL Apply.
Unfortunately there are a number of unsupported objects (ie: tables or sequences owned by SYS, tables that use table compression, tables that underlie a materialized view or Global temporary tables (GTTs)) and unsupported data types (ie: Datatypes BFILE, ROWID, and UROWID, user-defined TYPEs, Multimedia data types like Oracle Spatial, ORDDICOM, and Oracle Text Collections (e.g. nested tables, VARRAYs), SecureFile LOBs, OBJECT RELATIONAL XMLTypes and BINARY XML).[2] Physical standby may be appropriate in such a case.
The "Oracle Active Data Guard" option, an extra-cost facility,[3] extends Oracle Data Guard physical standby functionality in Oracle 11g configurations. It allows read-only access on the standby node at the same time as archiving transactions from the primary node.[4]
LNS (log-write network-server) and ARCH (archiver) processes running on the primary database select archived redo logs and send them to the standby database,[5] where the RFS (remote file server) background process within the Oracle instance performs the task of receiving archived redo-logs originating from the primary database.
Alternatively, a supplementary mechanism may transfer the archived redo logs. On the standby database a Fetch Archive Log (FAL) client monitors for gaps in the sequence of received logs. If it finds a gap, it may invoke one or more Fetch Archive Log (FAL) servers to run on the primary database to forward the missing item(s).[6]
Once the archived redo logs have arrived, other processes (such as an ARCH (Archiver process), an MRP (Managed Recovery Process), and/or an LSP (Logical Standby Process)) may set about applying the log contents to the standby database.
The Data Guard Broker subsystem can aid in the setup, management and monitoring of Data Guard configurations.[7]
Data Guard provides high availability for a database system. It can also reduce the human intervention required to switch between databases at disaster-recovery ("failover") or upgrade/maintenance ("switchover") time.
Version 11.2.0.1.0 and earlier is somewhat unreliable and buggy in its physical standby incarnation.
If the network link connecting primary and standby is over-subscribed, the redo logs are not applied in chronological order, which can result in large gaps appearing in the available redo at the standby. Such a condition results in the standby being behind the primary.
Data Guard restricts use to like platform and Oracle RDBMS versions. [3]
Active Data Guard is an added cost option bundled within "Enterprise Edition" of the Oracle RDBMS and allows purely read-only access. [4]
Substantial costs savings are possible using Oracle Standard Edition (SE), Oracle Standard Edition One (SE1) or even Oracle Express (XE) with use of a third-party products to provide high availability for a database system. [8]